<?php

declare(strict_types=1);
/**
 * This file is part of habo_new_media.
 *
 * @link     https://www.berlen.cn/
 * @contact  tech@berlen.cn
 * @license  http://gitlab.rehou.cn/habo/habo_new_media/-/blob/master/README.md
 */
namespace app\service\cdc\cost\flow;

use app\model\ClientAccountModel;
use app\model\CostTaskAccountCompareModel;
use app\model\CostTaskAccountModel;

interface FlowInterface
{
    /**
     * 设置拉取账户数据.
     * @param ClientAccountModel $model
     * @param int $date
     * @return mixed
     */
    public function setTaskAccountData(ClientAccountModel $model, int $date = 0);

    /**
     * 拉取媒体数据.
     * @return mixed
     */
    public function getDailyData(CostTaskAccountModel $model);


    /**
     * 拉取成功操作.
     * @return mixed
     */
    public function pullSuccess(CostTaskAccountModel $model);

    /**
     * 拉取失败操作.
     * @return mixed
     */
    public function pullFail(CostTaskAccountModel $model);

    /**
     * 数据校准.
     * @return mixed
     */
    public function setAccountCompare(CostTaskAccountModel $model);

    /**
     * 拉取比较数据.
     * @return mixed
     */
    public function pullCompareData(CostTaskAccountCompareModel $model);

    /**
     * 同步校准时间，删除两表数据（无差异）.
     * @return mixed
     */
    public function synAccountCompare(CostTaskAccountCompareModel $model);

    /**
     * 更新校准数据(有差异).
     * @return mixed
     */
    public function saveAccountCompare(CostTaskAccountCompareModel $model);
}
